#[test]
fn test_string(){
    let mut s = "".to_string();
    // push()只插入一个字符
    s.push('a');
    // push_str()则插入一个字符串
    s.push_str("abc");
    // String类型实现了运算符重载
    s = s + "d";
    // 如果不掉s.clone()，则s的所有权将移动到s2中
    let s2 = s.clone() + "e";
    println!("{} {}", s, s2);

    // 字符串格式化
    let s3 = format!("{}-{}", s, s2);
    println!("{}", s3);

    // 遍历Unicode字符
    for x in s3.chars() {
        println!("{}", x.to_uppercase().to_string());
    }

    // 遍历字节
    for x in s3.bytes() {
        println!("{}", x);
    }
    let s4 = &s3[3..].to_string();
    for x in s4.chars() {
        println!("{}", x);
    }
    // 字符串slice
    println!("{}", &s3[3..].to_string());
}
